I'd like to do some tiny open-source projects. But I need your help to know what to build.
Looking to make things that are plug-n-play and do one thing well, with all bases covered to be production ready-- performant, accessible, enjoyable.
So, what problems can I help you solve?
@tychi A micropub server for the IndieWeb, designed for static sites. :) Unsure if it's a small job, though!
@celia Interesting! I did some investigations, I think since micropubs need a server of some sort, it'd need to be a service that could transform content into a format that static sites could then incorporate into their build process.
It's a neat idea, but is more work than I'm looking to chew currently.
Are there other features IndieWeb creators might like to be able to easily drop into their sites?
Photo galleries or music players, are a couple ideas.
@tychi Yes, you're right. :) Micropub needs a 24x7 server. Every user who wants to opt in would need to use a cloud VPS/Heroku. It is a two-part process: creating an API, and then committing data in a specified format to a repo.
I can't really comment on what other IndieWeb creators would like. I know what I suggested is the top of my list right now. ;)
@celia I thought a bit more about this last night... my knowledge of IndieWeb is still really limited, so let me know if this makes sense.
Server: 24/7 acting as an inbox/outbox with endpoints
Local: Daemon to pull/push to server, transform data, execute plugins (like commit/push to a repo)
Local (optional): Admin interface for Daemon
I'm thinking for this approach, it gives the user a lot of control on the IndieWeb data without necessarily physically controlling the endpoints.
@tychi That's actually pretty close. #IndieKit does most of this but development has kind of stalled. Would you be more keen on forking that and polishing it instead? I'd say some 80% of the work is done that way. It's cleanly written, has JSDoc comments, and is pretty modularized.
I'm considering a Micropub client, too, to acquire skills/knowledge to go with this. Spec compliant. Never done anything even close to this before. 😅
@celia Could possibly fork, I'd still need to look into it more. I'd be interested in building a client too, the admin interface for the daemon could basically be this client.
I'm actually thinking about a broader use case for this type of software beyond IndieWeb.
I've been thinking about personal cloud backups for photos/music and this architecture should serve that need too.
So by making the infra agnostic, we could make IndieWeb, ActivityPub, backups be plugins. Lightweight and flexible.
@tychi Might want to look at micro.blog, just for one more perspective. That said, I believe the author of Indiekit had also planned for integration with ActivityPub as well as IndieWeb, both, in the long term. Agnostic, like you said! The readme on GitHub did allude to something of the sort.
I'm always happy to help with anything JS, including Node as I'm trying to get on the end of that. Could be a useful experience to learn from someone better. :) Don't have much work coming in lately.
@celia Absolutely down to collaborate!
I'm thinking about using Deno, since I want to learn it and it seems more in line with my philosophies and appears straight-forward to get an application running on any hardware. What do you think?
For a PoC, it'll be three js apps--client, daemon, server--simply just talking to/influencing one another. This will be the core engine.
From there, we can figure out how to structure plugins to bring in IndieKit and make it IndieWeb ready. Thoughts?
@tychi Deno is fine, from what I have read about it. I honestly don't know how I'll fare though.
What are you thinking for the front-end? The blank space I have concerns the... plugin architecture. I'm not very experienced, so I would expect you to lead that, or I could also gain some more clarity as things progress. :)
Looking at https://micropub.rocks/implementation-reports/clients/ is also a good idea for implementation of a Micropub client - which in this could be a plugin...?
@celia for the frontend, I'm thinking vanilla CSS and JS. It's the lowest common denominator for anyone on the web.
Looking at that, I imagine endpoints themselves could be plugins and the frontend to control them as well.
Kinda like how ActivityPub loosely defines inbox/outbox and messages, everything around a message is a sort of plugin in my mind. To me, Pixelfed is a plugin implementation of ActivityPub for photos.
but most in php, which you probably not want on your server when you use a static site
i had the idea for static comments for static websites and had written a concept
a prototype might be easy, but getting it right is hard and a lot of work
Currently, apart from (trying to) integrating IndieKit, I am working on a more production-ready serverless comments not so strongly tied to Netlify's infra, for my own site. :D
I trust my now 8 year old project I could get running again and upgraded in a couple hours. I can't say the same about Node; my 4 year old project took several hours to update just the gulpfile that broke with other dependencies being out of date.
Tbh I'd go with php for small projects over node at this point.
but i think it's easy to write bad code in php. i prefer python :)
php had also a lot more CVEs than, e.g. python (idk if data after 2009 is missing)
as an administrator who is responsible for a server, i really don't want that on my server (but i use matomo)
@tychi IMO, the best projects are the ones that are useful to you. That or just join a project you like
@tychi Here’s a straightforward one from my backlog of side-projects:
A `datetime` attribute generator for the `<time>` HTML element, with duration, date, hours, period, timezones… Everything matching the specs. Resource: https://www.brucelawson.co.uk/2012/best-of-time
The only syntax I remember is the yyyy-mm-dd syntax. ¯\_(ツ)_/¯
I initially planned to do that one in order to learn Svelte JS.
@meduz Oh interesting! So basically, you feed in datetime in a format you can remember, yyyy-mm-dd, and then get all the other formats as output?
I've also been meaning to play around with Svelte. Out of the ever-evolving JS Framework landscape, I'm the most bullish on that tech even though I've never used it, haha.
@tychi Yeah, Svelte is a very interesting approach.
For `datetime`, the thing is: it’s easy to remember what to put in as long as you need to represent a date (e.g.: today is `<time datetime="2020-06-24"'>`). Date format is easy to remember. But when it comes to timezones, periods or whatever else, it’s always painful.
So, a generator could help: you pick the fields you need (for example, an online keynote streaming event would need: date, time, and timezone), and you get it generated.
I use #tiddltwiki a lot, but since the rewrite of Firefox, I now use node.js server. The annoying part is starting the server for each tiddlywiki, then opening the browser (of choice) and the using.
An app to create a desktop one click launcher on Linux for each tiddlywiki would be so useful. Hoping you understand...
@Horizon_Innovations So if I'm understanding correctly, you've got multiple tiddlywiki instances on your local machine.
To launch them, you start a node js server for the individual instance you want to work on.
Then you visit the local url in a web browser.
So you'd be looking for a shortcut to:
1. Start tiddlywiki server
2. Open localhost server in web browser
If so, which distro are you using?
Also, what commands do you run for starting your tiddlywiki server?
Hi, thanks for replying.
A desktop shortcut - yes.
As I have several wiki's, and I know others do to, a small script to create a shortcut would be really useful.
This is the general info:
@tychi Navigate to folder you'd like to put your wiki's in
Create folder and componants:
$ tiddlywiki mynewwiki --init server
$ tiddlywiki mynewwiki --server
Open browser & go to:
For offline version:
$ tiddlywiki --build index
root$ (sudo) npm update -g tiddlewiki"
I do have wiki's on other drives. I've found I've had to navigate to the other drive (& folder) before starting the server.
@tychi This works sometimes:
Exec=/bin/bash -c "tiddlywiki main-wiki-server --server 8085 & (sleep 1; xdg-open http://127.0.0.1:8085)"
but not when wiki is on another drive.
I use variations of Debian, Gentoo & Arch (- all without systemd if that makes a difference)
Web annotations specs need UI/UX solutions to enter mainstream consciousness. The work, without doubt, would deliver a great impact on creating a democratic web and affect areas as diverse as fake news, archiving, federation.
@prasoon I searched a little bit and I'll admit I'm not great at following specs (probably part of the problem for mainstreaming new ideas 😅)
The impact points you mention are really important areas to me, do you have an example of what types of UI/UX work is needed? Are there projects people are already working on in this space that needs some UI/UX?
Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.