frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Snowbin – A Mindmap-Based Social Platform Built with Lisp

https://www.snowbin.net/
2•rrepo•1h ago
I built a mindmap-based discussion platform, but what made the project truly interesting was not the UI — it was building the backend in Common Lisp.

Inspired by Paul Graham and his book The Hacker and the Painter, I wanted to experience what it feels like to design a system in a language built for abstraction rather than convention.

Instead of relying on a large framework, I combined small libraries and built a minimal internal structure myself.

Comments

rrepo•1h ago
Why Common Lisp?

In many ecosystems, frameworks define architecture for you. In Lisp, you define your own abstractions. The biggest difference was macros. Rather than repeating patterns such as JSON parsing,Error normalization, API response formatting and Exception mapping. I abstracted them into macros that standardized the flow across the entire backend. This allowed controllers to focus purely on business logic. For example, API responses are wrapped automatically (defmacro with-api-response (result) `(let ((res ,result)) (cond ((null res) `(200 (:content-type "application/json") (,(jonathan:to-json '(:status "success" :data ())))))

       ((eq res :invalid)
        `(400 (:content-type "application/json")
              (,(jonathan:to-json '(:status "error")))))

       (t
        `(200 (:content-type "application/json")
              (,(jonathan:to-json
                 (list :status "success" :data res))))))))
Instead of writing error handling and serialization logic repeatedly, I could define the contract once.
rrepo•1h ago
Standardizing Error Flow Another macro normalizes all exceptions into a single symbolic state:

(defmacro with-invalid (&body body) `(handler-case (progn ,@body) (error (e) (format error-output "ERROR: ~A~%" e) :invalid)))

Every layer speaks the same language: either valid data or :invalid. This made the layering extremely clear and reduced cognitive load.

rrepo•1h ago
Hot Reload Without Restarting

I also implemented a lightweight file reload mechanism. Instead of restarting the server on every change, the system checks file timestamps on access and reloads only what changed. This gave me a workflow similar to frontend hot reloading, but implemented manually.

(defun reload-dev () (dolist (file '("controllers/controllers-package")) (let* ((pathname (asdf:system-relative-pathname "mindmap" (format nil "~A.lisp" file))) (new-time (file-write-date pathname)) (old-time (gethash file file-mod-times 0))) (when (> new-time old-time) (load pathname) (setf (gethash file file-mod-times) new-time))))) Because everything is just code and macros, the system remains transparent and hackable.

rrepo•1h ago
What Lisp Changed What surprised me most wasn’t performance. It was cohesion.

The combination of: Macros for abstraction, Symbolic error flow, Minimal external, framework constraints and Explicit layering. resulted in a backend that feels small, consistent, and expressive. It reminded me somewhat of Go’s explicit design philosophy, but with a far more powerful metaprogramming layer. Lisp did not give me more libraries. It gave me more control over structure.

rrepo•1h ago
Closing Thoughts Building the server, reload mechanism, and API abstractions from scratch was far more educational than using a prebuilt framework. The codebase is currently closed, but I’m considering open-sourcing it. If you’re interested in using Common Lisp in a modern web backend, I’d love to hear your thoughts.

A survey of write protect notches on floppy disks and other media

https://devblogs.microsoft.com/oldnewthing/20260303-00/?p=112104
2•ingve•4m ago•0 comments

OpenWrt 25.12.0 – Stable Release

https://openwrt.org/releases/25.12/notes-25.12.0
1•giuliomagnifico•5m ago•0 comments

Attorneys get majority of payouts from handicap-accessible website lawsuits

https://www.wsbtv.com/news/local/attorneys-getting-most-money-thousands-lawsuits-handicap-accessi...
3•gosub100•7m ago•0 comments

Show HN: Fly anywhere on Earth – just type and take off

https://worldflightsim.com/beta/
2•fmfamaral•7m ago•0 comments

Bet on German Train Delays

https://bahn.bet
1•indiantinker•13m ago•0 comments

Agentmap – Like SKILL spec but for code. A frontmatter for source code files

https://github.com/remorses/agentmap
1•xmorse•14m ago•1 comments

Iran Strikes U.S. Military Communication Infrastructure in Mideast

https://www.nytimes.com/2026/03/03/world/middleeast/iran-strikes-us-military-communication-infras...
2•TheAlchemist•14m ago•0 comments

What 127.5M forms can tell you about the state of front-end regex input v

https://amandastjerna.se/blog/127-million-forms/
1•fanf2•14m ago•0 comments

The next era of social media: built and run in Europe, ruled by our laws

https://www.eurosky.tech
1•doener•16m ago•0 comments

American Snacking Habits Are Transforming the Restaurant Industry

https://www.theatlantic.com/health/2026/03/restaurant-snack-meal-menu/686220/
1•fortran77•20m ago•2 comments

Solidjs releases 2.0 beta – The <Suspense> is Over

https://github.com/solidjs/solid/releases/tag/v2.0.0-beta.0
1•evertheylen•21m ago•1 comments

The Corporate Bullshit Receptivity Scale

https://www.sciencedirect.com/science/article/abs/pii/S0191886926000620
1•robtherobber•22m ago•0 comments

Bugsight – CLI tool that analyzes errors and suggests fixes

https://github.com/Arnel-rah/bugsight
1•nel123•22m ago•0 comments

The Context Optimization Layer for LLM Applications

https://github.com/chopratejas/headroom
1•selvan•23m ago•0 comments

Show HN: Ungrind – the solopreneur CRM that updates itself

https://ungrind.ai
1•magnumpowerz•24m ago•0 comments

I built Formguard – form back end without DB or APIs

https://formguard.strivio.world
1•sh20raj•25m ago•1 comments

Show HN: CUP – MCP but for desktop UI (open spec for computer use agents)

https://github.com/computeruseprotocol/computeruseprotocol
2•k4cper-g•25m ago•2 comments

Google Analytics Made Beautiful

https://analyticsma.de/
2•daniloao•26m ago•0 comments

Ask HN: How do you catch OpenAPI drift before the UI breaks?

1•losalah•26m ago•2 comments

ClawOS:Linux Panel for OpenClaw,nanobot,picoclaw,nullclaw

https://github.com/mrytsr/clawos
1•mrytsr•28m ago•0 comments

LocalStack: Community edition abandoned, users will need to create an account

https://blog.localstack.cloud/the-road-ahead-for-localstack/
1•greatgib•30m ago•0 comments

Show HN: You don't forget password, You just forget pattern

https://drp.kingname.info/
1•kingname•31m ago•1 comments

CIA working to arm Kurdish forces to spark uprising in Iran, sources say

https://www.cnn.com/2026/03/03/politics/cia-arming-kurds-iran
3•Imustaskforhelp•31m ago•3 comments

Which LLMs fold under pressure? We made 6 LLMs argue 300 hard cases to find out

https://servanda.ai/benchmarks/the-post-training-stress-test
2•luke14free•31m ago•1 comments

From RGB to L*a*b* color space (2024)

https://kaizoudou.com/from-rgb-to-lab-color-space/
1•kqr•32m ago•0 comments

Show HN: SFT to convert a base language model into a conversational chat model

https://github.com/onurkanbakirci/Llama-2-7b-oasst-sft
1•onurkanbkrc•32m ago•0 comments

OpenAI in talks to deploy AI across NATO classified networks

https://www.marketscreener.com/news/openai-in-talks-to-deploy-ai-across-nato-classified-networks-...
1•_____k•32m ago•0 comments

Donx64mcp-dbg – an injected DLL debugger toolkit with an MCP server for x64 apps

https://github.com/d0nk3yhm/donx64mcp-dbg
1•d0nk3yhm•33m ago•1 comments

Molmo 2: video understanding, pointing, and tracking

https://github.com/allenai/molmo2
1•tamnd•33m ago•0 comments

Erratic ILS Signal Causes a Missed Approach

https://www.boldmethod.com/learn-to-fly/safety/erratic-ils-signal-causes-a-missed-approach/
1•kqr•33m ago•0 comments