Follow

Hey everybody!

I'd like to do some tiny open-source projects. But I need your help to know what to build.

I'm extremely adept at writing dependency-less JavaScript and CSS. An ideal project would be a riff on something you use or would like to use, but is convoluted as a developer or a user.

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.

Thoughts?

@tychi That's actually pretty close. 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 micropub.rocks/implementation- 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.

@celia @tychi great idea! a quick search shows that some exists

indieweb.org/static_site#Micro
github.com/skpy/micropub
github.com/joshdick/microstat

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

pad.nixnet.services/U0RU2OpgTb

a prototype might be easy, but getting it right is hard and a lot of work

@davidak @celia Good point! A lot to dig into there, need to get more up to speed on what already exists.

Agreed about how hard it'll be. I generally over-simplify in my estimations. But other times figuring out just the right amount of work is super rewarding.

@davidak @tychi To detract from the main conversation, I also worked on something similar just a while ago - open-jamstack-comments.netlify

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

@davidak @tychi You're right, not big on PHP. That's mostly just down to not being as comfortable as I am in JS.

@celia @davidak I go back and forth on PHP. I haven't used it in half a decade, but when I was first starting that was hands down the easiest server side language to get into.

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.

@tychi @celia the good thing about php is, that it runs on basically any webspace. so the accessibility for users is very good

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)

cvedetails.com/product/128/PHP
cvedetails.com/product/2147/Py

as an administrator who is responsible for a server, i really don't want that on my server (but i use matomo)

@davidak @tychi Microstat looks interesting and actively maintained. I am going to try this out soon. Thank you! :)

@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: brucelawson.co.uk/2012/best-of

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.

@tychi
I use 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?

@tychi
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:
1/

@tychi Navigate to folder you'd like to put your wiki's in
Create folder and componants:
$ tiddlywiki mynewwiki --init server

Start tiddlywiki:
$ tiddlywiki mynewwiki --server

Open browser & go to:
http://127.0.0.1:8080

For offline version:
$ tiddlywiki --build index

Upgrading tiddlywiki:
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.
2/

@tychi This works sometimes:

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=test
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.
3/3

@tychi
I use variations of Debian, Gentoo & Arch (- all without systemd if that makes a difference)

@tychi
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?

@tychi
I know tattle.co.in/ might need some help with their work around fake news. milli.link is thinking of ways of handling community annotation for archives (disclaimer: I'm involved in these discussions).
web.hypothes.is does some good work as well.

Sign in to participate in the conversation
Fosstodon

Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.