Tweet
Applying @htmx_org to my project for dynamic updates.

Really liking the ease of use here.

This library simplified a lot of things for me today!

#buildinpublic
It is not much but I am super stoked to have a working pipeline generator.

Syntax is for debugging and updates only happen when you refresh the page.

But it works and if it works I can always make it better.

#buildinpublic
I was going to use Tailwind but opted for Bootstrap because I knew it.

Well, not this! Let me save you the 2 hours.

If you are using a <textarea/> in a form the rows attr will be ignored.

Unless you do this: buff.ly/3Xe22Pk

It's dumb. It's CSS.

#buildinpublic
I have started migrating toward a more DOM-like API.

It makes sense. I am building up a doc of sorts.

Need to see how far to take this.

I've streamlined creating blocks and actions (I think so anyway).

#buildinpublic
Created a custom CLI to load the database.

I am using YAML to define the content and EFCore for updates.

This allows me to think in terms of the content and how it relates.

I did not want to string together SQL to build a release.

#buildinpublic
I am not gonna lie.

gitignore.io is a valuable resource for my projects.

I use it at the beginning and sometimes in the middle when updating tooling.

I rarely think about my .gitignore files anymore.

#buildinpublic
SQLite as the basis of my static CMS is complete!

YamlDotNet lessons:

- Include a default constructor if you define your own
- Assign a default value to silence nullability warnings
- Pascal casing rename doc elements to match

#buildinpublic
I know Java packages are really a directory structure.

In C# they are logical and defined by the developer.

JetBrain Riders seems to want to follow the Java pattern.

Me? I like to have multiple classes in a file and the namespaces don't map.

#buildinpublic
Console app in C#?

- System.CommandLine - too many lambdas & DragonFruit anyone?
- McMaster - good but retired
- ManyConsole - appears abandoned

+1 Spectre.Console

It supports command composition w/ sub-commands.

Dependency injection is janky but manageable.

#buildinpublic
"I thought you were using Visual Studio Code for this project?"

I started by using Emacs w/o a debugger so I moved to VSCode to get that.

I got tired of editing the launch.json file.

Rider finds all of the configs (there will be more) and I have a debugger.

#buildinpublic
Making sure the SQLite database exists. Just pass in the connection string.

Callling `DbContext.Database.EnsureCreated()` makes the file for SQLite and the tables.

I don't know about indexes yet. The project is so small I don't it matter ... until it does.

#buildinpublic
I got in the habit a long time of creating separator bars in comments.

I use it to break up by scope.

It makes it tons easier to zip through code scrolling or with the minimap.

Blocks of code are clearly delimited.

#buildinpublic
There are failures along the way in the quest to avoid shiny new objects.

Mistakes were made.

I downloaded JetBrains Rider to see how it handled my perfectly crafted repository.

#buildinpublic
I've been tracking development tasks on index cards.

Frankly it was a dumb idea and I'm surprised I made it this far.

GitHub Issues are fine but I started looking at Projects.

#buildinpublic
Wrote a command line interface to create my SQLite file.

Running `doa db init --seed` to get started.

I am just running CREATE TABLE statements for now.

#buildinpublic
Data management is the worst. I hate SQL. Never been very good at it.

Read up on the Repository and DAO patterns today.

I don't want to learn something new, for an MVP, but Entity Framework may be the way. That is tomorrow's task.

#buildinpublic
One of the reasons I am using SQLite is I don't want to manage a db server.

I also don't want to write SQL to populate all of my data.

So, I am writing some of the textual data in YAML files, parsing, and populating the db using a simple CLI I wrote.

#buildinpublic
It's never too soon to build out your monetization strategy.

I don't have the following to put out a Stripe payment link and a landing page yet.

There is SEO content sites. There is SaaS.

Have the two ever been combined?

#buildinpublic
I have seen far too many team struggle with automation at the end of a project.

DO NOT WAIT UNTIL THE END TO AUTOMATE!

Issue #1 in repo is "Initial CI/CD bootstrap"

The shell of the app is running so I need to build and containerize it!

#buildinpublic
I was looking into using Areas for my ASPNet Razor app.

It worked like a champ in MVC to logically seperate functions.

Sources online are pointing to folders to get the same effect (and with less complexity).

How about I do something less complex for a change!

#buildinpublic