Projects; December 2022
I have a lot of things I want to work on. I figured I should write them down.
This is a list and rough summary of everything I am currently interested in doing – from writing prose to code. This is the stuff I work on in the evenings when I can, and I want to capture this here and now because this is an exciting time for the internet. Twitter is burning and the platforms might no longer have a stranglehold on the internet. How can we make the internet a better place?
1. Set up this site as an ActivityPub client.
How can I expose my sites content and structure via tools like ActivityPub and RSS? Can I toot from my static site? Can I integrate octothorpes? Can I accept posts from other people? What are the limits and how is it done?
2. Write some small tools for publishing & consuming ActivityPub content to a triplestore.
ActivityPub is a super interesting idea and spec, that tools like Mastodon and the “Fediverse” have layered some interesting stuff on top of. And I like a lot of the ideas! What if I could toot from a CLI? What would a little private message DM app look like?
3. Write code & prose for the large-ish Tables, Documents, and Graphs essay.
There is so much I just fundamentally do not understand about how databases work. The time has come for me to learn.
4. Write a more robust version of my introduction to RDF from the explicit perspective of web development.
This is important to me – I’ve learned so much about RDF and how it can make our jobs as web developers so much easier. The biggest issue is the lack of accessible ways in to this world. I think that writing this with an eye to an audience of people like me would be really cool and useful.
5. Wrap up the functional prototype for the Stucco TL™ project.
This is so, so close. The concept for Stucco TL™ (a bad joke working project name that I really like) is an ontological application that defines both vocabularies and the structures of data that are expressed with those vocabularies, exposing that data in a web-consumable way.
There are some loose ends at the very beginning and very end of the project, around ontology definition and end-data consumption and rendering.
6. Write a specification and design document for the Stucco TL™ project.
With what I’ve learned from the prototype, I can write a basic set of behaviors that the app should perform. This can be paired with some rough design thinking (desktop app! Not something I’ve ever designed before!). This might also entail finding a new way of doing and expressing design work beyond paper sketches.
7. Write the code for the basic structure of the Stucco TL™ project.
Now that all the planning has been done, and a design set, it’s time to write the damn thing.
8. A GraphQL to SPARQL converter
One of the worst things about writing a GraphQL endpoint is needing to do all the resolvers. What if you … didn’t? GraphQl to SPARQL to triples to JSON. Done! There are some decent starts to this problem, but Im not sure they are totally functional as I would like.
9. Generate GraphQL
schema sdl
files from a JSON-LD
context.
This should be possible (I think??) and it might be a missing link for the contemporary web dev industry. Not that I super love GraphQL, but it’s a standard! There are some tools for JSON to SDL our there, so maybe this is a good direction to go in.
10. Standardized Svelte components I use often in the Shipyard project.
There are a lot of simple components that I use in a lot of different projects. Forms, buttons, some special inputs like great <select multiple>
or even input multiple
for things like tags. It would be great to have a solid little UI library of Svelte components that can go from project to project.
11. Convert FormBody objects to triples with RDF-KV.js.
Dorian Taylor’s RDF-KV spec is an amazing approach to just … saving data from Form posts in a rich and robust way. I could really use an JavaScript implementation of this, with decent docs and examples.
This is one of the important tools in making RDF for web development so easy; Form post to datastore in a single, transparent step is a huge thing.
2022-12-15: This is real enough to actually use!
12. Write a vocabulary for Digital Gardening.
What are the things that go into a website, especially one focused on being a Digital Garden? So much of a personal or organizational websites information architecture is broadly applicable to a general case. Can I capture this vocabulary of a Garden? How does it relate to ActivityStreams and Linked Data Notifications?
13. Write some Digital Garden consumer apps.
I have a vision of a Zelda-style gameboy interface for exploring a website. I have a vision of a Borges infinite library, I have a vision of a hypercard text adventure. I want to make these things so other people can see them!
14. Write about that process in Digital Gardening with Open Standards.
There have been some great, thought provoking essays on Digital Gardening and what 2023 can bring – a lot of this work has informed what I’m trying to do here. I should formalize this learning and capture it in a way that might help others.
15. Create a little service product that acts as a JSON-LD DBaaS w GraphQL and REST endpoints.
This is something I would love to use and have. There are a lot of DBaaS’s out there like PlanetScale, Superbase, Triply, DGraph, Neo4j Aura, AWS Neptune, GraphDB, and others. None of them are quite right for what I want – one click hosted instances of a SPARQL
endpoint for a low, low price.
16. Write a decent little CLI tools for rdf data transformation in Node.js. Or Rust!
I recently was working with a great dataset that was provided in CSV or RDF, but the RDF was in RDF-XML. This was a downer, since it would have been great to use CLI tools to convert that to triples or JSON-LD. All the tools I found in this space are all Java or Python, neither of which as super great and easy to use. I want a CLI that can do basic RDF stuff that just fits within my web development ecosystem. Also could finally be the reason I learn Rust.
17. Create a docker container that is a tiny mastodon—alike instances as a service.
I think Mastodon, as an application, is too complicated. It’s too much! It’s trying to solve all the problems! It’s over-engineered, and therefor, mostly appeals to engineers. Im curious about a version of Mastodon that’s a drop-in replacement that can handle hundreds or thousands of users with ease and grace, storing all the data in a triple store, and outsourcing all he emails and file storage to other solutions. A simple backend, a simple front end.
18. A Reader app for consuming RSS, email newsletters, ActivityPub, Twitter, Reddit, whatever.
I’ve long admired Paul’s Reddit reader app ranalog.club. It’s a great tool that imagines a different kind of experience of the internet. What if we broadened that to act on this post-platform moment and potential we’re in? What if a beautiful simple tool could consume – any of the common channels of content production?
19. RDF-based analytics collection tools and robust data-science analysis of the resultant data.
There’s a lot of cool, privacy conceded startups out of (mostly) Europe. These include Cabin, Plausible, Panel Bear, and Fathom. These are cool and good! What would it look like to take these principles, attach them to the ontology-based flexibility of RDF, and look at the resultant data with the same intense data science tools as companies like Heap?
2022-12-15: This is getting started!
20. Body-less CMS
This has been a long-running project with some attempted code applications that led me to RDF in the first place. The basic idea is outlined in The Shape of the Problem. How do we allow people to make websites with the websites we make?
21. A Sveltekit + Triplestore startup skeleton.
Triplestores, RDF, and SvelteKit all make develop web projects easier. So why not collect all those things in one place and do all the work around what a digital product or service could like with all these technologies? Aspects of this include: authentication, access control, programmatic email integration, agent models, bodiless CMS editing, analytics & metrics, a11y & perf testing, and o11y open telemetry integration.