Drop #237 (2023-04-10): Documents, Receipts, and Shadows
devdocs.io; Perplexity; Designing Beautiful Shadows in CSS
Programming note: I neglected to inform Bonus Drop receivers in advance of the hiatus this past weekend (food/fam engagements ate the remaining spare time), so that means I'll find time intra-week for some extra crunchy goodness for y'all.
devdocs.io
This past weekend, as I was dishing out culinary delights and piecing WebRIDEr together, I used devdocs.io (GH) to make a small R documentation site for this nascent “IDE” of mine. It then hit me I've never talked about them before, so today we fix that massive cognitive error!
DevDocs “combines multiple developer documentations in a clean and organized web UI with instant search, offline support, mobile version, dark theme, keyboard shortcuts, and more.”
The app has some core areas of focus:
Keep load times as short as possible
Improve the quality, speed, and order of search results
Maximize the use of caching and other performance optimizations
Maintain a clean and readable user interface
Be fully functional offline
Support full keyboard navigation
Reduce “context switch” by using a consistent typography and design across all documentations
Reduce clutter by focusing on a specific category of content (API/reference) and indexing only the minimum useful to most developers.
It is entirely client-side, including how it pulls content into the app, which is all done by “scraping” from other, free documentation sites either directly (via URL) or from stored, local copies. These bits are stripped of their original formatting, indexed and made available in a giant list of topics that include sub-versions of popular technologies (want to recall something from D3 v3? They've got you covered.)
The entire “database” is just sanitized and normalized HTML snippets and some JSON indexes and metadata.
I used their Dockerfile to make a small R docs site that I host in my house and proxy over to the web via Tailscale.
It's a beautiful site on top of the tech being super solid as well. (Yes, that means I actually said something nice about Ruby).
Perplexity
I try to keep “AI” content to a minimum, since Lynn does a better job of covering that space than I will ever do in her newsletter. So, when I do cover it, it's either to steer you clear of something, let you know I use something (and how/why I use it), or just find what it does super cool and introduce it to you — then wait for Lynn to give it a proper introduction.
I've been rebooting my web dev tech stack knowledge base and have been leaning pretty heavily on Kagi's core search offering, direct project documentation (e.g., Vite), and, sadly, ChatGPT. I can fully confirm OpenAI's attempt at broad domain coverage is a pretty big fail, and I won't chime in with a “me too” take on the sorry state of giant, public LLMs.
A big problem I have with ChatGPT (sans the new “plugins” offering, which is just getting off the ground and will ultimately cost us all even more money) is the lack of receipts. Even when you ask it to cite things, it lies (I know it doesn't actually “lie”, but it definitely asserts its probabilistic outcomes are accurate).
Enter Perplexity. No, not the measurement of how well a probability distribution or probability model predicts a sample (though, that proper definition makes the choice of company name that much more awesome). Perplexity AI (the company) has an AI-based search engine — Perplexity Ask — that delivers answers to complex questions using large language models.
Now, it is powered by OpenAI's GPT-### models and Microsoft's Bing search engine (and I could not determine if they're now competing with Microsoft or if Microsoft is leaning heavily on them). So, it has familiar bits under the hood, and we can use that knowledge to tread carefully as we take a look at it. The key feature it has over OpenAI's basic chat services is that it can get current information from the internet to help it answer your questions. And, it will provide accurate, clickable citations for the references it uses.
Along with the citations, you get the usual LLM blathering, and the ability to work within a session to keep the conversation going to get to whatever outcome you want. In fact, rather than wax poetic, I'll drop this link to a convo I had with it just for y'all. It mimics a convo I had with it over the weekend to help me build WebRIDEr. Some of that convo is me asking questions and refining the journey with words. Other parts are me clicking on a few suggested follow-ups. I also have no idea how long it saves convos, so I waybackified it, but haven't checked back to see if it managed to capture the whole thing.
It's only been around since late 2022, and it's knee-deep in venture backers, so I grok how the core search service is free, for now. But, I have no idea how they plan to bank coin when this goes from startup idea to actual product.
Oh, and like most other AI things these days, it has a mobile app.
Designing Beautiful Shadows in CSS
Apart from it being a single word that ends in “s”, the third item in the tagline is quite different from the previous two in today's Drop. But, I found this well-crafted dive into CSS shadows so compelling, that I thought others might, too.
Sure, The Shadow knows, but now you also know the shadows!
FIN
(Still struggling for something epic for The Drop's first anniversary tomorrow. Hopefully, today will find some inspiration.) ☮