frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

April 2025 Blackout Report

https://www.entsoe.eu/publications/blackout/28-april-2025-iberian-blackout/
1•yuppiepuppie•1m ago•0 comments

What concessions did Israel, Hamas make to reach hostage-ceasefire deal in Gaza?

https://www.jpost.com/israel-news/article-869898
1•7402•2m ago•0 comments

Show HN: RAG on Docker Model Runner

https://github.com/dilolabs/nosia
1•tontoncyber•2m ago•0 comments

Drawing.garden

https://drawing.garden
1•surprisetalk•3m ago•0 comments

Why Reactive Programming Hasn't Taken Off in Python -How Signals Can Change That

https://bui.app/why-reactive-programming-hasnt-taken-off-in-python-and-how-signals-can-change-that/
1•rbanffy•6m ago•0 comments

The AI valuation bubble is now getting silly

https://www.theguardian.com/technology/nils-pratley-on-finance/2025/oct/08/the-ai-valuation-bubbl...
3•jakubmazanec•8m ago•1 comments

Experiments with AI Adblock

https://notes.npilk.com/experiments-with-ai-adblock
1•npilk•9m ago•0 comments

Show HN: In-Context Index for In-Context Retrieval

https://github.com/VectifyAI/pageindex-mcp
3•mingtianzhang•10m ago•0 comments

Google Changes AI Health Policy After Employee Backlash

https://www.businessinsider.com/google-ai-health-tool-opt-in-risk-losing-benefits-2025-10
2•walterbell•11m ago•0 comments

PgEdge Enterprise Postgres and Full Commitment to Open Source

https://www.pgedge.com/blog/introducing-pgedge-enterprise-postgres-and-full-commitment-to-open-so...
1•pgedge_postgres•12m ago•0 comments

Air: A Pioneering AI-First Python Web Framework – Audrey.feldroy.com

https://audrey.feldroy.com/articles/2025-10-06-air-pioneering-ai-first-python-web-framework
1•rbanffy•16m ago•0 comments

Elon Musk's security clearances will be made public due to his own X posts

https://arstechnica.com/tech-policy/2025/10/musks-x-posts-on-ketamine-putin-spur-release-of-his-s...
3•duxup•16m ago•1 comments

Why doesn't anything work anymore?

https://rodriguezcommaj.com/blog/why-doesnt-anything-work-anymore/
2•FromTheArchives•17m ago•2 comments

Python 3.14 Is Here. How Fast Is It? – Miguelgrinberg.com

https://blog.miguelgrinberg.com/post/python-3-14-is-here-how-fast-is-it
3•rbanffy•17m ago•0 comments

The Purring Test

https://www.ted.com/games/the-purring-test
1•downboots•18m ago•0 comments

Goiaba: An experimental Go compiler, written in Rust

https://github.com/raphamorim/goiaba
2•SchwKatze•18m ago•0 comments

Did you know that there is an HTML tables API?

https://christianheilmann.com/2025/10/08/abandonware-of-the-web-do-you-know-that-there-is-an-html...
2•eustoria•21m ago•0 comments

Career Pivot from Coding

1•mightbeawhile•22m ago•0 comments

Let 2 AI LLMs talk to each other via OpenAI compatible API endpoints

https://github.com/hugalafutro/llm-convo
1•mooreds•22m ago•0 comments

VSM is a tiny, idiomatic Ruby runtime for building agentic systems

https://github.com/sublayerapp/vsm
1•mooreds•23m ago•0 comments

Show HN: I built a Destiny Matrix calculator based on numerology and astrology

https://arcanacalculator.com/destiny-matrix-calculator
3•joker-1•24m ago•0 comments

Integrated Sensing and Communication (ISAC) Emerging Technology Initiative

https://isac.committees.comsoc.org/
1•teleforce•24m ago•0 comments

A blank website with just an em dash

https://emda.sh/
3•liquid99•25m ago•0 comments

Single Source of Truth – Generating ORM, REST, GQL, MCP and Tests from Pydantic

https://github.com/JamesonRGrieve/ServerFramework
1•JamesonRGrieve•26m ago•0 comments

Launch HN: Extend (YC W23) – Turn your messiest documents into data

https://www.extend.ai/
7•kbyatnal•27m ago•0 comments

AI and Home-Cooked Software

https://mrkaran.dev/posts/ai-home-cooked-software/
2•mr-karan•29m ago•0 comments

A small number of samples can poison LLMs of any size

https://www.anthropic.com/research/small-samples-poison
23•meetpateltech•29m ago•0 comments

Cybersecurity Training Programs Don't Prevent Phishing Scams

https://today.ucsd.edu/story/cybersecurity-training-programs-dont-prevent-employees-from-falling-...
3•divbzero•30m ago•0 comments

Show HN: Tasklet – Automate your business with AI agents

https://tasklet.ai/
1•mayop100•32m ago•0 comments

Interviewing Intel's Chief Architect of x86 Cores

https://chipsandcheese.com/p/interviewing-intels-chief-architect
3•ryandotsmith•34m ago•0 comments
Open in hackernews

Show HN: I built a web framework in C

https://github.com/ashtonjamesd/lavandula
138•ashtonjamesd•3h ago

Comments

guerrilla•3h ago
For fun or why?
hmry•3h ago
Science isn't about why, it's about why not.
ashtonjamesd•3h ago
For fun! And because I wanted to create a framework that makes coding in C feel like a high level language (mainly for fun though).
cozzyd•2h ago
I think it makes lots of sense when adding e.g. a live view to some C daemon running on a single board computer. Obviously in these cases you're not generally on the public Internet and your clients are trusted.
camillomiller•3h ago
Next up, a wordpress block editor in Cobol :)
alwahi•2h ago
a saas in prolog...
sixtyj•2h ago
Don’t forget Fortran… /s
wolfgangbabad•2h ago
so basically vibecoding using gipiti prompting
Joeboy•2h ago
A computer program written in a programming language.
osigurdson•2h ago
Cobol and C are very different in terms of modern relevance.
JKCalhoun•3h ago
I'm stupid — is this to create web apps that run on the server? More or less replacing PHP or whatever?
ashtonjamesd•3h ago
Right now, it's just a framework for building backends. So yes, server-side applications. However, I have thought about implementing a templating engine for serving HTML files.
sixtyj•2h ago
Edit: I am considering to delete the following paragraph as it seems that my hands were quicker than my brain :)

I'm sorry, but it's like scratching your left ear with your right hand. But for fun, yeah, there are worse things people do. Good luck and have fun. Now here's where most of us will probably be sarcastic, but it's certainly a good way to explore whatever others consider bullshit.

Edit: Pls read the following comment. I would hire him/her because I consider this as a waste of OP skills and he/she would be useful in many more projects.

TLDR; it was not a hate. I am sorry if it sounds so.

ashtonjamesd•2h ago
True. Also, I love the C language and I don't get joy out of writing in many other languages. Additionally, I've wanted to make something like this just to learn more about how web servers work. I appreciate your thoughts.
sixtyj•2h ago
It is not about threat. It is about that life is too short to do things that are almost nonsense. Ofc everyone of us consider “nonsense” in different way.

I wish OP good luck. It was not sarcastic, I really do, and would like to hire him/her for the skills. But for mankind, this project is almost useless… I apologize if this sounds harsh.

ashtonjamesd•2h ago
That's fair. And I do agree. The use cases for something like this are very thin compared to what tools you can use out there instead, Django, Rails, Express, etc. All of which offer a much safer development experience. However, I still believe it will have a use case for some.
sixtyj•2h ago
You are right. But I really think if you know C lang (all of Python or PHP people could be jealous :) - you can easily focus on something a little bit important/useful that will have impact on humanity.

You have a great potential if you can “see code” and have logical thinking deep inside. Not too many people have it.

Elon Musk said once that all those innovations are redeemed by the tremendous efforts of all the engineers. So I appreciate everyone who can do something.

seanssel•2h ago
Oh please, get off the weird high horse. I find this comment to be “nonsense”. What projects are you working on now, for mankind?
sixtyj•2h ago
Why are we alive? To be useful. Not happy all the kind. Everyone wants to be useful.

I am not doing anything special but I do inform our community (“mankind”) for 25 years… And I feel useful because I am good at it.

“Mankind” can be a group of other people.

Edit: What people value the most? Compliments. So if you are useful and receive compliments, you will eventually be happy. But ofc you can be happy without being useful, for sure.

chrsig•1h ago
to be useful to whom, exactly?
sixtyj•1h ago
To other people, of course.
jacquesm•1h ago
OP has done more to be useful to other people than you did in this particular thread. Ok, so what if it has been done many times before, this is his, it may not be perfect and it may not be immediately useful to you. But it increased his knowledge and he shipped, which is more than I can say for 95% of my own projects, so that's impressive by itself. He also opened himself up to criticism and takes it all in stride, which is another fairly scary but powerful thing to do.

Fun fact: I've built something very much like this that powered a number of programs that I sold over the years and it was written when I wasn't nearly as good of a programmer as I am now (take off 30 years of additional experience). If I look at OP's code there are a whole raft of nitpicks but there isn't anything immediately and obviously wrong with it and just speaking for myself, that is surprising because most people's C code is - and I'm being generous here - absolutely terrible. This has potential, but I'd have to really dig in to see how solid it is and I don't have time for that right now, but I've seen far worse code than this.

sim7c00•1h ago
love this sentiment. i cant really write in other languages. i try but always C ends up the choice :'). slow going but happy going
password54321•2h ago
Why do web developers feel threatened that someone just built a web framework for fun?
jermaustin1•2h ago
As a web developer who's first paid web site was in 1998 when I was 10-years-old, my favorite thing to do in my spare time is build web frameworks that I will never use.

- I've done CSS frameworks that replicate most of bootstrap that I use.

- I've made client-side reactive web-components (kind of) that almost replaced the parts of react that I like.

- I've built bespoke HTTP servers countless times since the VB6 days.

- And I've written my own MVC engines probably a half dozen times, just to learn a new language or library.

All of that to say, it isn't web devs who are threatened, it is developers who don't want to learn the underlying technologies that power the libraries and frameworks they use.

I actually see no fault in being that way. I've know tons of decent-to-good developers that have no desire to understand HTTP or Vanilla JavaScript, and they still do great work tying systems together. It's all about the kind of learner you are. Do you want depth, breadth, or a mixture of both (but always lacking in both - aka me).

sixtyj•2h ago
That is what I wanted to say too… but I did it wrong way in previous comment.. oops
jermaustin1•1h ago
We all trip up on our words sometimes. To err is human.
jermaustin1•2h ago
An old boss of mine was an early developer for match.com, their entire web app was a monolithic C application, and, if I'm not mistaken, an ISCSI shared file-system based "database".
sixtyj•1h ago
All big projects eventually have a specific background. I totally agree. Sometimes it works. Other times it doesn't work in long term and the cursed technology debt catches up with the company.
Hackbraten•2h ago
This can be super useful for IoT or embedded devices with web interfaces but restricted resources.
EGreg•3h ago
Take a look at https://www.reddit.com/r/programming/comments/225ovy/okws_ok...

This was years ago (20 years ago?)

alwahi•3h ago
https://tenor.com/view/jeff-goldblum-jurassic-park-jurassic-...

Your scientists were so preoccupied with whether or not they could that they didn't stop to think if they should....

ashtonjamesd•2h ago
C finds a way.
firemelt•1h ago
u should post this to people that write web with javascript
gwbas1c•2h ago
I don't understand the example. Does it even compile?

It's been a long time since I've used C, so maybe it's using some syntax that I'm unaware of?

IE: What defines "home" that is referenced as an argument to the "appRoute" function, and then passed to the "get" function to set up the "/home" route? Is "home" defined in lavandula.h, or is this really pseudocode?

diath•2h ago
It's a macro:

    #define appRoute(name) HttpResponse name(AppContext ctx)
ashtonjamesd•2h ago
Hi, sorry maybe I should've added a comment for that.

The 'appRoute' is a macro that expands to a function signature.

The macro is: '#define appRoute(name) HttpResponse name(AppContext ctx)' and the parameter I passed as 'home' is expanded into the function name. The reason is because all controller function signatures are the same, so just writing 'appRoute' allows the developer to save time writing endpoints!

It is a tradeoff between readability and development speed. And one of the ideas behind the framework is succint and minimal code.

gwbas1c•1h ago
So it creates a function called "home", and that is what you pass to get?

Makes sense, thanks!

hofrogs•2h ago
"appRoute(home)" is a macro that expands to a function called "home":

    #define appRoute(name) HttpResponse name(AppContext ctx)
rnhmjoj•2h ago
If I can guess, I would say `appRoute` is a macro that defines a struct called `home` with that handler being assigned to some field as a function pointer.
lubesGordi•2h ago
Well I don't know about others here, but I think its cool. If you can make the setup super readable and get the performance of C then why not? Especially now when you can get claude to write a bunch of the framework for you. Add in whatever you need whenever you need it and you automatically have a platform independent web framework that's no bigger than what you need and likely decently performant.
maybewhenthesun•2h ago
Maintainer nightmare checklist:

- Web framework : inherently hard to maintain due to communication over evolving standards. Check.

- AI written code where nobody knows howwhatwhenwhy!? Check.

- Written in C. Check.

bwahahahaha!

edit: semi-joking. As I actually like the simplicity of pure C. But the combination of AI written,network-facing and C makes me shudder.

ashtonjamesd•2h ago
Haha, I have used AI in some parts of it - mainly the JSON part because I could not wrap my head around it for the life of me. But I am proud that 90% is self written!
jvanderbot•2h ago
That is excellent. Well done.
jvanderbot•2h ago
I think the old HN ethos that I loved, on full display here, won't survive intact in the AI era. It'll have to change from "It is cool to try making <neat tool> in <non obvious language>". Such a project is now a prompt away, and there's light-years of distance between a carefully hand crafted version and something that is posted aspirationally by an AI.

Every agent I know of or use will always say they built "Production ready, secure, fast package for X" if you ask them to build that, but they rarely actually will. It takes enormous time and effort to actually do that, and any first iteration of "production ready" is definitely aspirational until it actually hits the real world and survives. I'm speaking from experience, fwiw.

p0w3n3d•2h ago
Great work! Thank you! That's what I've been looking for for a long time.

Still probably I'm going to continue learning golang in most situations, because that's where the money is (i.e. job offers), but I will create a hobby project based on your framework.

--- EDIT ---

> 5 hours ago

Ohh it's fresh. I almost smell the freshly baked buns with my mind

ashtonjamesd•2h ago
That's amazing to hear and motivates me to solidify the framework further. I appreciate you showing interest! :)

I'd love to hear about your project when you get round to it.

fallingmeat•2h ago
wow that’s a lot of HATE for a really well organized project with some great ideas. Killer job Ashton, you just built some skills they can’t take away from you.
ashtonjamesd•2h ago
Thank you, that means a lot! :)
freetonik•2h ago
I hope you don't feel discouraged by some comments questioning the meaningfulness of this. It's a cool project, and you obviously put some thought into it. Congrats!
freetonik•2h ago
In addition, OP clearly describes themselves as a "Fanatical C Developer", so that's enough justification in my book! :)
Teknomadix•2h ago
Doing what you love is fully justified in 2025.
ashtonjamesd•2h ago
No of course not, I understand where they are coming from in all honesty. Thank you that means a lot!
tobyhinloopen•2h ago
Calling it a framework with an example that returns a hello world text response is a bit of a stretch, isn't it?
ashtonjamesd•2h ago
Haha, the example could be better. All of the other things combined, I would say it could be called a framework.

There are some more examples in doc/

levkk•2h ago
That's awesome. With macros, you can go far and most modern web frameworks use whatever complex tools their language allows (like metaprogramming in Rails).

Mad props for building this. It's hard and it's fun!

As to other comments in the thread about the "why": why not. For the love of the craft.

ashtonjamesd•2h ago
Thank you so much! I appreciate it :) And yes, totally agree.
sroerick•2h ago
Hi, I think this is great. I've really enjoyed working with Jetzig, which is sort of similar.

I also love the BSD C CGI Postgres stack. I'm just a CRUDmonkey with mostly python skills, so getting to explore low language and memory concepts is a lot of fun for me.

People will whine and moan about how this is not practical, but as embedded devices become more ubiquitous I think a clear value add may actually emerge.

I've been playing with the pico calc, and if I was building something as a "mobile app" for that I would much rather reach for C for my framework code.

Cheers, great work

faxmeyourcode•2h ago
This is some of the cleanest, modern looking, beautiful C code I've seen in a while. I know it's not the kernel, and there's probably good reasons for lots of #ifdef conditionals, random underscored types, etc in bigger projects, but this is actually a great learning piece to teach folks the beauty of C.

I've also never seen tests written this way in C. Great work.

C was the first programming language I learned when I was still in middle/high school, raising the family PC out of the grave by installing free software - which I learned was mostly built in C. I never had many options for coursework in compsci until I was in college, where we did data structures and algorithms in C++, so I had a leg up as I'd already understood pointers. :-)

Happy to see C appreciated for what it is, a very clean and nice/simple language if you stay away from some of the nuts and bolts. Of course, the accessibility of the underlying nuts and bolts is one of the reasons for using C, so there's a balance.

ashtonjamesd•2h ago
Wow! That really means a lot because I always make a lot of effort to make sure my code is just that :)

Appreciate you saying that!

jacquesm•1h ago
You've done a couple of things right: very few dependencies, simple, easy to understand code. C gets hairy when you try to be clever.

I'm busy writing some of the most optimized-but-still-portable code that I've ever written and it is very interesting to see how even a slight difference in how you express something can cause a massive difference in execution speed (especially, obviously, in inner loops). Your code is clearly written from what your comfort zone with C is and I'm really impressed by the restraint on display. At the same time, some of the code feels a bit repetitive and would benefit from more universal mechanisms. But that would require more effort and I'm not even sure if that is productive. One part where I see this is in the argument parsing code as well as in the way you handle strings, it is all coded very explicitly, which substantially increases the chance of making a mistake.

Another limitation is that using AI to help you write the code means you don't actually understand what it does, and this in turn may expose you to side effects that you are not able to eliminate because you did not consider them while writing, it is as if someone else gave you that code and asked you to trust them they did not make any mistakes.

citizenpaul•1h ago
> I'd already understood pointers.

Ok I hear this all the time. Are pointers really that hard for so many people to understand? I'm not trying to brag it took me I think like 15 minutes to grok them from learning about them the first time. I'm sure it took me longer to be proficient but I don't get this legendary difficulty aura that seems to surround their existance.

Also yes nice project.

Job app complete projected archived and abandoned in 3...2..1... :). I hope not.

copperx•42m ago
The concept is straightforward. The syntax isn't. That's why cdecl.org exists.
citizenpaul•5m ago
C gibberish to English gave me a chuckle thanks.
assimpleaspossi•32m ago
Same here about pointers. Perhaps it's cause I started life as an electronic engineer and understood memory addressing from the chip level but I, too, don't understand the struggle others seem to have.
noufalibrahim•31m ago
It's a rabbithole. Pointer to array of structures that have pointer fields. Array of pointers to structures etc. You pass them around and trip over the passing semantics, uninitialised pointers etc etc.
citizenpaul•7m ago
Hmm. Perhaps I've just never encountered a hairy enough situation with them? That's what the eternal thought tracker notepad on my desk is for though. Maybe people are trying to do it all in their head? Pen and paper are too old school for the cool new 1000x devs?

I still feel like this argument could be transferred to nearly any concept in CS though. Abstract enough anywhere and you will always start exceeding the brains working memory.

capestart•2h ago
This looks cool
jacquesm•2h ago
If you're going to use local allocation of short lived buffers then don't use malloc but use alloca. That's much cleaner.

http.c around line 398, that looks wrong.

gpm•22m ago
I've been told that modern compilers really don't like alloca, is that wrong?
jacquesm•17m ago
I don't know who told you. But it's a lot slower than malloc, and requires you to do a bunch of bookkeeping, which is easy to mess up if you have multiple exits from your function.
globalnode•2h ago
I like this, thanks for sharing. I recently did some work with a python web server using the basehttpserver and it was amazingly easy. Pythons even got built in tls support, would that be doable in your server? Its not that necessary with reverse proxies but its still nice for hobby projects.
ashtonjamesd•2h ago
Yes, I'm sure that is something I can add to it.

I will add it to the backlog of things to do :)

coreyp_1•2h ago
I'm wanting to do the same thing. I've also already written a language (in C) to generate HTML (a template language), so these two go hand-in-hand!
codegeek•2h ago
People, stop trying to be so serious and nitpick this project. This is a great example of an actual HN worthy share. Someone built a cool project and explored the possibilities with C. This is not something we need to analyze with "oh can it replace PHP" etc.

Good job OP. Now if you can add HTML templating, this may become a complete framework :)

ashtonjamesd•1h ago
Thank you, I really appreciate you saying that!

Yes it's on the backlog and will be fun to implement :)

hgs3•2h ago
The code is very readable and well organized. My only major critique is that there's very little error checking, e.g. there are many calls to snprintf and malloc without checking the result. There is also an unused loop here [1].

As an aside, I don't see any support for parallelization. That's fine for an initial implementation, but web servers do benefit from threading off requests. If you go that route (pun intended) you might consider using something like libuv [2].

[1] https://github.com/ashtonjamesd/lavandula/blob/51d86a284dc7d...

[2] https://github.com/libuv/libuv

ashtonjamesd•1h ago
Thank you for the feedback, it is appreciated!

I did intend to implement parallelization as a later feature so it's good to bring it up.

OutputRiff•1h ago
The repo looks fantastic! I'd love to see a demo and didn't seen one readily available in the readme.

I had such a bad experience with GWT back in the Java days of my life that I've steered clear of any "server" language for web frameworks since. I'd love for that to change though. I definitely will be trying this out.

defraudbah•1h ago
github is giving me 503, the project is too good for mS

Thanks for sharing, this looks amazing

dboon•1h ago
C is really, really ripe for tooling and modern libraries. There are a lot of great ones already that don’t resemble what I’ll call university C in the slightest (i.e. the C most of us remember writing; awful, bug filled, segfaulting)

I’ve been building out my C standard library replacement in earnest for a little while. If you like this framework, check it out.

https://github.com/tspader/sp

elevation•1h ago
Nice work! I like the little test framework you built. Have you considered making runTest a macro so that you can print the name of the test along with the test result?
ashtonjamesd•1h ago
That's a very good idea actually and I had wanted to do that but it didn't click that you could do that with a macro!

Thank you, I'll will implement that :)

elevation•1h ago
For the ultimate in readable test reports, you can prettify the test name by:

* dropping the prefix "test_" * substituting the "_" characters in the function for whitespace * uppercasing the first letter of each word.

So `test_tokenize_simple_model` becomes "Tokenize Simple Model".

jcmontx•1h ago
I often forget how similar to Golang C looks and feels
elevation•1h ago
I have considered porting a couple production apps from python to C; at this stage in their lifecycle they would benefit more from C's execution speed than from python's development speed.

Your work is a nice reference, it is neat to see someone else working in this space!

dariosalvi78•1h ago
How compatible is this with embedded devices? How much does this depend on OS APIs?
sim7c00•1h ago
really nicely written. inrespect this is maybe known / unneeded comment, but why bother with basic auth at all, especially when there is no TLS?

i understand other auth schemes are more complicated, and maybe theres no desire to pull in big libraries. just that if theres no TLS or proper auth, you can also just skip basic auth. its only use would be to trick someone who's not familiar (unlikely with such a repo but not impossible) into a false sense of security.

ofc, not really an issue with the code, and its an excellent base to look into how this stuff works and if you want since its pretty clean and easy to ready, expand upon it. well done! love ppl churning out good ol C projects. respect!

severino•28m ago
> why bother with basic auth at all, especially when there is no TLS?

Maybe to have some "basic" auth for an embedded device web interface or something like that? I suppose it's better than nothing. I've devices which prompt for username and password with no TLS either.

orochimaaru•37m ago
This is very cool. I may take the same concepts you have and do this in rust and zig for fun and learning.

Yeah, I know those languages have a the frameworks but nothing really beats understanding something like doing it ground up on your own.