hckrnws
This is awesome. I’ve also built a number of services for myself (Pinterest style photo hosting for archival/research purposes, analytics service for my websites, tracker for the books I’ve read, message board for micro communities I’m a part of, etc). I also share them with friends who express interest in them.
The costs are minimal (they all run on a shared $4/mo instance + $10/yr domain per project) and I get to control where the data lives, the features I want to have, etc.
No need to worry about getting the rug pulled on me because the company got acquired or needs to raise revenue or anything like that. No frustration because a redesign made the UI worse or removed features I cared about.
It obviously takes a bit of time upfront, but I see it as a long term investment in my productivity. I use boring, basic, stable technologies so once something is deployed it keeps on humming with extremely minimal involvement on my behalf.
I’m basically slowly working on replacing pretty much every 3rd party app I use with something I wrote myself (it’s going to take a while but that’s okay). My grandpa was a carpenter and pretty much every piece of furniture in the house was something he or his friends had made. As software craftspeople, we should strive to do the same with our digital houses.
Kudos to the author and anyone else who does this. You don’t hear about these things in the mainstream because there’s no reason for people doing this to shout it from the rooftops, but this is software at its best.
> I’m basically slowly working on replacing pretty much every 3rd party app I use with something I wrote myself (it’s going to take a while but that’s okay). My grandpa was a carpenter and pretty much every piece of furniture in the house was something he or his friends had made. As software craftspeople, we should strive to do the same with our digital houses.
I do the same. Both with software and furniture in my house.
I've built all kinds of little dashboards, a big website software project, a local-only bookkeeping system, etc.
With furniture, I'm not that far that I dare to build a chair or couch, but I've built a bed frame, an over-engineered shoe rack (https://www.youtube.com/watch?v=hXzO8BOIlhk), a weight rack, and now I have some bookshelves in the works.
I don't know if you're Japanese, maybe it's coincidence, but I really get inspired by watching Japanese craftsmen on Youtube. It's not only the techniques or style that I like, but the careful working on something that should last.
For others of like interest, NHKOnline is an ever-growing and fantastic collection of videos in English (or at least subtitled) that showcase Japan's fascinating sub-cultures, many of them craft-oriented.
Our favorite is "Design Stories" (which used to be "Design Talks Plus") that features many such fantastic Japanese crafspeople. Our family hasn't missed an episode in quite a few years.
And, of course, there is the Canadian resident of Japan, David Bull, who does traditional wood-block prints in the style of the magnificent Hokusai. His attention to detail in his work is inspiring to us as well.
Same here. I got into woodworking because I was astonished at the price of decently-made furniture here in the US. You can literally buy all the materials AND tools for less than one solid wood rustic-chic kitchen table and bench costs to buy.
Anyway, the hard part about this is that you need a space and then the tools and some tools are easier/cheaper to build than buy (e.g. bandsaw, router table) but there comes a point at which you have to stop building the shop and start building furniture. Most of the YouTubers I follow haven't gotten this message yet...
> I got into woodworking because I was astonished at the price of decently-made furniture here in the US. You can literally buy all the materials AND tools for less than one solid wood rustic-chic kitchen table and bench costs to buy.
Not really surprising, the majority of the cost is the actual work. Especially in high-wage countries like the US. Buying a computer to build a website is also much cheaper than getting a website made by someone else.
> Anyway, the hard part about this is that you need a space and then the tools and some tools are easier/cheaper to build than buy (e.g. bandsaw, router table) but there comes a point at which you have to stop building the shop and start building furniture. Most of the YouTubers I follow haven't gotten this message yet...
You might like my Youtube channel then (see previous link). I work in my living room, using my couch and my Ikea stool for basically everything. A lot of cheap hand tools, but I can't work without my drill press. I pick up 2x3's at the local home depot, start sawing and drilling, and mostly use bolts and nuts for connections. Along the way I pick up new power tools, like a portable drill, a dremel, and my newest - a trim router. I built a bicycle caravan, a portable stove, among others. One of the things that really surprised me is the amount of jigs that come to life out of nowhere, haha.
By the way, nice bandsaw you made!
And in many cases you can "just" draw what you want and find a local-ish woodworker to make it for you.
The stuff in furniture stores has like 5 different stages of companies each taking a cut, increasing the price at every step.
I really get inspired by watching Japanese craftsmen on Youtube
"Japanese Joinery" as a search term yields a near bottomless rabbit-hole of amazingness that hits the perfect intersection of craftsmanship, technology and art for this engineer.
Same.
Since Claude 3.5 Sonnet has been released I've been building a lot of "microservices" that are just useful to me, or Chrome Extensions that I've seen that I just recreated using Cursor. Awesome learning experience and now I can customize them as needed.
I think you mean that you've been building a lot of simple applications? Because that's not really what microservices are.
I mean sure it's just a word and HN especially loves to spit on original definitions, but it is always kinda jarring to hear these technical terms in settings that have pretty much no overlap with the original definition.
Seems like we'll need to coalesce on a term for these. A microapp[0]? Or a tiny app[1][2]?
[0] https://en.wikipedia.org/wiki/Microapp
μApp?
If you think as yourself as an application and you are surrounding yourself by small service applications that do one specific task...then I could see it make sense.
For the love of technology, and the love of coding, and the love of self hosting, good.
This is the way.
100%
I'm not a programmer by trade but I write tools for myself all the time. My favorite is a wiki-style knowledge base that I built for myself because I did not like the bulk or design of all the existing solutions. (I am a bit picky.) I use it every day for both work and personal stuff. There are lots of ways I want to improve it, but finding the time is difficult.
I’d love to see the UI, you don’t by chance have any screenshots? I’m always interested in how people organize their own knowledge based especially wiki style
What service are you using that's 4$/month? I've used the free tier of Render on the past which I enjoyed but the lowest paid plan is 20$/month.
Some excellent VPS deals with high storage here. Host has a good rep on LET. Believe these promos are ending soon and many are sold out in any case, but I think they have some stock in a few of them..
https://lowendtalk.com/discussion/199617/hostbrr-bf-storage-...
Dreamhost shared unlimited is good for this I think. 3,95 - After 3 years the price triples but still worth it. Unlimited traffic, bandwidth, emails and subdomains.
Some options that pop up frequently on HN: Vultr, DigitalOcean, OVH and Hetzner Cloud, all have cheap VPSes, $4-$5 per month for the cheapest I think. And usually if it's an app for just you/your small family, you can get away hosting multiple apps per VPS without suffering atrocious performance (depends on the apps/usage obviously).
The trick (and somewhat the drawback in many's eyes) is to rent a VPS (or dedicated/bare metal) instead of a "App hosting service" (what Render is). You'd need to know some basics about infrastructure and networking, but not anything too advanced and that's stuff will be useful regardless too, so not too easy to rationalize away :)
this makes it sound very nice. i only do this stuff out of sheer frustration. not understanding stuff (i hate 'magic' , its 1s and 0s...), or not agreeing with decisions after i do understand stuff. i really dislike i have to build everything myself. though then again. i guess i do like building stuff :')... it's a never ending s/shitshow/joy/g
oh, and yeah, looks like a really nice project honestly. i never do frontend stuff, but when i do, man, something like this would be useful :')... typing chromium index.html -> realizing it just spawned on the different workspace because chromium is trying to be smart (more likely i am being dumb ;D).
having it side by side like that looks really nice if u have the screenspace.
I've recently discovered the joys of vscode-server[0] for this type of use case.
Which you can either serve as a WebApp direct from your machine, or tunnel in from another VSCode instance - including a webhosted version from Microsoft[1]
I may not do that much coding these days, but I already have found it handy for when I forgot to do a Git push! Just log back in to the Web Environment and everything is how I left it.
[0] https://code.visualstudio.com/docs/remote/vscode-server [1] https://vscode.dev/
There’s also code-server by Coder, which you can just run on your own server and open in browser directly. It’s also open source (most tunneling features in VSCode aren’t). https://github.com/coder/code-server
There’s a one-click setup for it in Lunni, a Docker dashboard I’ve been working on (shameless plug): https://lunni.dev/
As someone who doesn't code professionally, what is the primary use case that leads to significant daily enhancements for developers?
This is a multifaceted question, because there isn't one use case, it depends on who you are.
If you are somewhat nomadic and always moving systems, having a "home" you can dial back to and pick up where you left off from is a massive boon (with a remote system like this, my phone is now powerful enough to do pretty much any development task as now it's just rendering the front end and not doing real heavy lifting)
If you're an enterprise programmer working on locked down networks and devices with more end point protection tools than endpoints, an unencumbered authorized system with access to the right network assets, as well as standardized and project specific tooling is the difference between coding and coding with one arm tied behind your back and a blindfold on. (actually the benefits for enterprise are many and not just DevEx -- think security, network admin, vendor access, governance, AI rollout, reduction in project specific on-boarding documentation....)
I'm sure there are many other use cases, though these are just the immediate ones that spring to mind.
I appreciate the commentary; it provided a helpful overview of the use case.
Lunni looks neat. Is persistence baked in with the docker stuff you deploy on and/or how is persistence handled/achieved?
Thank you!
We use the standard Docker volumes [1] for persisting data. It’s pretty straightforward – you just define a volume and specify where to mount it:
volumes:
app-data: {}
services:
app:
image: example.com/app/backend:latest
volumes:
- app-data:/data
This should work pretty well for most use cases. (There are some caveats if you decide to run multiple Lunni servers in a cluster – basically, every node would get its own volume by default – which is the main reason we don’t officially support that yet :-)Lunni looks cool. I hear mixed things about Docker Swarm. How has it been to work with?
Thank you so much!
Personally, Docker Swarm works great for me. I was worried about it for a while, too, but Mirantis seems to maintain it pretty well. There are even new features being shipped, like CSI support back in 2023! I’m thinking about adding a Kubernetes backend though, just in case things get worse for Swarm.
Christian's been an awesome Glitch community member for a long time; I had caught Thinkserver when he first posted about it the other day. Generally, over the last 7 or 8 years we've seen super users be inspired to make their own tools like this every few months and it's great! Every single one has good ideas and brings new things to the table, and also there's a lot to learn from the overall trends. (Like, in this case, support for coding on phones, where we're still not very strong.)
The other takeaway I got from his original blog post is a little bit of that trepidation you get when you put this stuff out there, where it can be a little nerve-wracking, because you don't want folks to rip it apart or file a million bug reports. fwiw I'm glad folks are being mostly chill about it.
Building custom tools that work for only you is so under rated. I would never use that workflow but it works for the author and that’s awesome!
> Building custom tools that work for only you is so under rated.
This is one of the top applications for LLM-based dev IMO. With things like aider / cline / cursor / windsurf / bolt it's looking like this will be a lot easier to scaffold small-scale projects that make sense for you and not necessarily turn into products. It suits single-dev / small teams for now, and that's OK.
This has been my experience as well. I find my much more likely to “build” it myself versus using something off the shelf because it’ll give me full control over the project.
A lot of the reasons I would pull in dependencies for are things I’m either not good at or not fast at writing and in most cases LLMs are good at picking up the slack.
It’s been a joy to write the core logic then have an LLM throw a web GUI frontend together for me so I can iterate faster.
This might be a serious problem for tinkering platforms such as Glitch and Kinopio [1]. They are awesome, but they strongly inspire me to take creativity just a little step further and build my own implementation.
This then leads to a fragmented landscape of such services, and none gets enough traction to grow into seriously sustainable popularity.
Just build it for yourself and don't feel bad about not being a startup founder or something. I know it feels a little weird and it takes some adjustment time, but don't compare the joy of building software for yourself to business yardsticks. That stuff won't match anyway.
This looks fantastic, I'll make sure to try it!
I've been working on a similar platform (https://smallweb.run), which allows me to host all my side projects from a single root folder. Each subfolder automatically becomes a subdomain, and I can just use vscode remote ssh or mutagen to live edit my websites.
> and I can just use vscode remote ssh or mutagen to live edit my websites
What is old is new again :) Back when I started development, we did this via git remotes, and some projects even did what you created and created environments mapped from git remotes to apps running with subdomains (like Dokku is probably the first/most memorable FOSS service for this back in the day).
And before that, I'm sure people were doing the same thing with Java WARs or similar, and before that, something else but similar.
Yeah dokku is an inspiration!
The main difference is that smallweb use deno instead of docker for sandboxing apps, and leverages url imports (which can be used to distribute complex apps like VS Code):
```
import { VSCode } from "jsr:@smallweb/vscode@0.1.7"
const vscode = new VSCode({ rootDir: Deno.env.get("SMALLWEB_DIR") });
export default vscode;
```
You can play with a live instance of smallweb at https://demo.smallweb.live
By "VSCode" here you mean something like a HTTP API for file read/write[0] that can be used from VSCode, I think? VSCode also can be made into a web app[1], but I don't see that happening here.
[0]: https://github.com/pomdtr/smallweb-vscode/blob/main/extensio...
[1]: https://github.com/gitpod-io/openvscode-server https://github.com/coder/code-server etc
By vscode I mean vscode-web + an fsprovider extension.
You can play with it at https://vscode.demo.smallweb.live (the code is located in the `vscode` folder)
> The main difference is that smallweb use deno instead of docker for sandboxing apps
Yeah, a single-runtime (smallweb) instead of any language (dokku) + I'd probably say the avoidance of using git for the delivery would be the two biggest differences I can glance.
Yeah, I see smallweb as a playground.
I want to "develop in prod", not rely on successives git pushes to see changes.
If I need semantic releases, I publish the dev version as a package on jsr, and I then import it from the "prod" app.
I still uses github as way to store my apps though, you can find them at https://github.smallweb.run
Very cool, very similar to SSHFS support on https://pico.sh/pgs and https://pico.sh/tuns
I love pico.sh! Some of their service can be reimplemented as smallweb apps.
Ex: prose.sh is similar to https://jsr.io/@tayzendev/smallblog, an app created by a member of the smallweb community (we have a server at https://discord.smallweb.run). You can see it running from smallweb at https://blog.tayzen.dev
I even use the underlying lib ssh implementation of pico.sh in smallweb (https://github.com/picosh/pobj), and I plan to introduce a cloud service similar to their (you can subscribe to the waitlist at https://cloud.smallweb.run)
`live edit my websites`
This will only work if your websites are in vanilla javascript / html right ?
Smallweb also allows you to run server-side code using deno. The main process watch for changes in the app directories, and automatically restart the corresponding deno processes when a change is detected.
If you ever interacted with cloudflare workers or https://val.town, it is a similar experience.
Feel free to join our discord at https://discord.smallweb.run if you're curious !
Interesting, thanks for sharing. Will explore
If you want to get notified on future updates, you should join the community discord at https://discord.smallweb.run
Like other folks here I also made something similar for myself. It started as a jsbin clone, but then I wanted to play with tweaking the environment itself. So now it's become a single editable directory tree where both the editor and the actual projects/demos share common parts of code, all synced between local storage and the server. If I break the editor and refresh the page, there's a simpler alternative editor backup to fix it. Lots of fun with such setup!
Here's a screenshot with the editor showing a preview when editing itself: https://imgur.com/a/RxMCrlf
I’m a big fan of glitch as well, so it’s very impressive you have built the same yourself. Do you self host the server and are there any limitations on languages you can use?
Oh wow! And I did not expect to click on this and see a Tyne & Wear Metro project. I can see why you may have wanted to create one though. Good luck with it!
nice work! very similar to the scrappy codepen clone i built for myself, will copy a few things! I've integrated AI edits and use it suprisingly often as well to sketch out mini apps. https://endtime-instruments.org/scratch/
This is really cool! I love the AI touch. Is the code open source?
Fantastic. This is something I've thought about doing too. There are days where visual studio's shenanigans make me consider the benefits of a bespoke web based UI very strongly.
With libraries like ace and codemirror available, the hard part is mostly on the server with managing state and integrating tools.
I use C#/.NET for everything, so I'd lean on the Roslyn APIs to handle code completion, reference tracking, workspaces, debugging, etc.
This is seriously awesome! I made something extremely similar called Dock'n'Roll, but this looks far more polished. I think we should make our own tools more often.
Nice.
One thing I couldn't unsee: The editor and the preview panels seem to have their bottoms misaligned by 1-2px.
Very cool. Caddy in front with some basic auth and off I go on the internetz?
Nice to see another Elm enthusiast!
You must know about Ellie, right?
It does not have git integration like your project though.
Anyway, nice project!!
Fair bit of whiplash seeing my local metro system on one of the examples haha, Tyne and Wear metro FTW!
This is so reminiscent of doing web development in smalltalk with seaside.
Every time I see a smalltalk comment I hope to see a reply along the lines of
> I've been maintaining a Smalltalk compiler, <URL>
But alas. I wonder how hard it is to get a copy of the spec...
https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
Download and search !Compiler in:
./Cuis7-0-main/CuisImage/Cuis7.0.sources
:and you'll see the commented Compiler class source code:"The compiler accepts Smalltalk source code and compiles it with respect to a given class. The user of the compiler supplies a context so that temporary variables are accessible during compilation."
It would be easier to install Cuis Smalltalk and use the Smalltalk browsers to explore the Compiler code.
It’s a VM you need. Not a compiler. The Pharo Project’s VM [0] is in C, and not that extensive. Most of the good stuff is written in smalltalk.
For a second I thought this was about using a Lenovo server...
Damn names...
I found it so useful
Crafted by Rajat
Source Code