And we're off! Look at this! Two posts. Let's see how many days in a row I can keep this up (#feature). Yesterday I spoke about taking a picture every day (#feature). I'll talk about that more later, but to start I just wanted to introduce the general format of these sorts of posts.
I'll be following the approximate workflow:
- Write the content summarizing the previous day's work.
- Make enhancements / implement new functionality.
- Take a screenshot showing off the new feature.
- Add the new screenshot to the article and/or history page (#feature).
- Brief plan for the next day.
- Publish
The intent is that future posts will have a three-part format:
- Guide to Yesterday
- This will be something of a how-to or a guide to implementing what I've done. Or maybe a technical discussion about the functionality. Let's see how it turns out.
- Today's Result
- Here I'll highlight the new thing that I've done, including particular screenshots if applicable. (Obviously some backend refactoring won't demonstrate any pretty pictures.)
- Plan for Tomorrow
- A brief discussion about what I want to do on the following day for the "new feature".
Guide to Yesterday
Yesterday I made my first post on this most current version of the blog. You can go there to look at a brief history of my (mis)adventures with blogging. But how does it work?
Platform
This blog is built with Fresh. It has some cute pictures of dinosaurs drinking lemonade, so obviously it's good, right? But in a more serious sense, it's built with deno, which is a better version of node. I'm able to learn some modern web technologies.
Source
The code lives on my github profile, so you can see how everything works. Nothing private here!
Host
It's hosted on Deno Deploy which is cool because it's free. My website receives approximately zero visitors right now, so that's great. Now I'm saving money in comparison to the failed 2020 version of my blog.
Domain
I registered this sweet domain with AWS. I'm sure they would prefer that I host my site with them and use all of their other technologies, but the above stack is good enough for now.
Application
If you follow the guide on from the Deno Blog, in particular How to Build a Blog with Fresh then you should be able to reproduce something similar to what I have here.
Wrap Up
I think that pretty much does it from the technical side of things. There's not a whole lot more to say, because I really just changed a few things from the article mentioned in the application section.
Today's Result
New Feature
I wanted the ability to programmatically take a screenshot and display it. So here's a picture of the blog at the end of yesterday. Going forward I think it will be enough to take a picture of each route once per day (i.e. no need to take a picture of every single blog post each day -- one post per day should do it).
Gotchas
If you want to render static stuff, pretend there is no "static" folder. As per the fresh documentation, fresh is capable of showing static assets. Great, perfect spot for my images, right? Don't try to do it like the following:

or the raw
<img src="static/cat.jpg" alt="funny cat" />
Instead if you just remove the
static
part it will be fine. Write your markdown like
and the image will appear.
When in doubt, just look at the source of something that's working. The fresh webpage uses images, so if you look at their source code, you'll see they don't include
static
-- boom, problem solved.Lists aren't styled correctly with twind by default. Fresh homepage to the rescue again! This route has a line like
<link rel="stylesheet" href={`/gfm.css?build=${__FRSH_BUILD_ID}`} />
Which is almost what you need. You'll also need to include a file in your routes like this. Then lists get bullet points and such. Not sure why.
You can do code in markdown like this:
```jsx (you code here, and without this next \ at the end) \```
(Maybe for the final time, look at the source of something that does what you want.)
(Obviously I still don't know how to escape the above correctly.)
Plan for Tomorrow
So there we have it. Maybe my first proper blog post. In conclusion we have:
- A short summary about setting up a blog with Deno Deploy.
- A first look at this "history of the blog" feature, via a simple screenshot.
- Three gotchas that were blocking me from properly writing this up.
So what will I actually do tomorrow? Well, I managed to use the #feature
tag three times in this post:
- Some sort of tracker highlighting my posting streaks. This is definitely low on the list.
- Taking a picture every day. I guess I did this already, but it could certainly be automated.
- A history page. Well, that's something to add to the list. Maybe in the middle? As long as I accurately capture the history each day, there's no need to rush to highlight that history in a convenient way. Even if I don't capture the history every day, I could always checkout a particular commit and look at what the site used to look like.
Additionally, it seems like one of the features I should add is some sort of feature list. And then a way to keep track of when various things are done. But I already have a private feature list, and almost none of the above are on it! I wanted to
- add analytics
- use some components
- add an 'about me', 'portfolio', and 'contact' pages
- styling
- add the ability for my readers to comment
- etc etc
Certainly seems like there is a ton to do. I guess that's a problem for tomorrow's Reed.